[PATCH] [Mips] Add support for min/max/umin/umax atomics
authorMirko Brkusanin <Mirko.Brkusanin@rt-rk.com>
Thu, 12 Dec 2019 10:19:41 +0000 (11:19 +0100)
committerAndreas Beckmann <anbe@debian.org>
Sat, 10 Jul 2021 21:52:37 +0000 (22:52 +0100)
commitdf24ad08a08d3564dc4dbcae0245804f3a64db91
tree5c9dfe5ca435f10479214776f3ce364b8b2026f7
parenta8bb93cf94e6fb09b37d1e3f0e69931741ab8d78
[PATCH] [Mips] Add support for min/max/umin/umax atomics

In order to properly implement these atomic we need one register more than other
binary atomics. It is used for storing result from comparing values in addition
to the one that is used for actual result of operation.

https://reviews.llvm.org/D71028

Changed-by: James Clarke <jrtc27@debian.org>
[Backported to 9 by replacing Register with unsigned]

Gbp-Pq: Name D71028-mips-rust-test.diff
llvm/lib/Target/Mips/Mips64InstrInfo.td
llvm/lib/Target/Mips/MipsExpandPseudo.cpp
llvm/lib/Target/Mips/MipsISelLowering.cpp
llvm/lib/Target/Mips/MipsInstrInfo.td
llvm/lib/Target/Mips/MipsScheduleGeneric.td
llvm/lib/Target/Mips/MipsScheduleP5600.td
llvm/test/CodeGen/Mips/atomic-min-max-64.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/atomic-min-max.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/atomic.ll